dofile "lib/radical.lua"

function tile(s) 
  return const.path.gfx.."game/ssk/"..s..".jpg"; 
end

function cm_tile(s) 
  return const.path.gfx.."game/common/"..s..".jpg"; 
end

function dxml(s)
  return const.path.dlg.."3-inter/inter/"..s..".xml";
end

inter = engine.state {
   _drink       = false --Peter had a cup of coffee
  ,_name        = false --Peter knows girl's name
  ,_notalk      = false --Girl refuses to talk
  ,_cup         = false --Peter gave Fohn coffee
  ,_papers      = false --Peter gave Fohn papers
  ,_cuptaken    = false --Cup is taken
  ,_cupcoffee   = false --Cup is in the coffee machine
  ,_coffee      = false --Coffee is in the cup
  ,_paperstaken = false --Peter took docs
  ,_talk        = false --Peter talked with Astahov
  ,_try         = false --Peter talked to Fohn with no result
  ,_alldone     = false --Peter talked with Fohn OK
}

inter_player = musplayer.player {  
   sfx("coffee"):inside("brew"):always()
  ,mus("satiate"):inside("start1"):always()
  ,sfx("static_boom"):inside("start2"):always()
  ,mute():inside("start3")
  ,sfx("hydraulics"):inside("cam1")
  ,sfx("camera_snap"):inside("cam2")
  ,sfx("camera_snap"):inside("cam4")
  ,sfx("camera_snap"):inside("cam6")
  ,mus("snowdrop"):inside("inter1")
  ,sfx("doorshut"):inside("finita")
}

main = engine.main {
   start        = chain_ {
                     episode_("3-inter")
                    ,musplayer_("inter_player")
                    ,walk_("start1")
                  }
  ,finish       = gamefile_("3-inter/bel.lua")
}

start1 = pause {
   time         = 12000
  ,fading       = 0
  ,tile         = { cm_tile "clouds2", 0, 20 }
  ,bounds       = { nil, 380, 900 }
  ,dsc          = [[-- Итак, с вами снова Денис Курпатов, "Новое радио", и в ближайший час нас с вами ждет много интересного -- новости из
                    мира музыки, горячая десятка и многое другое. Ну и, чуть не забыл, конечно, я оглашу победителей вчерашней викторины. А
                    если кого-то вдруг расстраивает наше сегодняшнее ненастье, могу персонально для вас сделать самый оптимистичный прогноз 
                    погоды -- через недельку-другую у нас будут солнце, жара и самое настоящее лето. А пока откиньтесь на спинку кресла, 
                    прибавьте громкость и наслаждайтесь нашим хит-парадом.^
                    Но начну я как полагается с небольшого анонса. Да, да, речь снова о проблемах с качеством приема нашей радиостанции. Первая
                    наша попытка решить проблему была, признаться, не слишком удачной, но мы не опускаем руки, поэтому же завтра, 12 июня, мы
                    вновь начнем вещание на еще одной, так сказать, экспериментальной частоте, так что если у вас есть под рукой карандаш и листок
                    бумаги, записывайте, а если нет -- ну что ж, постарайтесь запомнить. Итак, завтра, если вам будут мешать помехи, вы сможете
                    настроиться на... ARR]]
  ,next         = "start2"
  ,onclick      = walk_("start2")
}

start2 = pause {
   time         = 3000
  ,fading       = 0
  ,enter        = stop_music
  ,next         = "start3"
}

start3 = pause {
   time         = 2000
  ,next         = "echo_dlg"
}

echo_dlg = dialog {
   bounds       = { 260, 220, 480 }
  ,dsc          = "-- Да она вообще сейчас отрубится..."
  ,dlg          = dxml "echo"
}

cam_pause = pause {
   time         = 1000
  ,next         = "cam1"
}

cam1 = slideup {
   tile         = cm_tile "cam"
  ,fading       = 0
  ,x            = 351
  ,y            = 200
  ,endy         = 160
  ,step         = 1
  ,fps          = 20
  ,next         = "cam1wait"
}

cam1wait = pause {
   tile         = { cm_tile "cam", 351, 180 }
  ,time         = 2000
  ,next         = "cam2"
}

cam2 = pause {
   time         = 500
  ,fading       = 0
  ,tile         = const.path.gfx.."white.jpg"
  ,next         = "cam3"
}

cam3 = pause {
   time         = 1000
  ,fading       = 0
  ,next         = "cam4"
}

cam4 = pause {
   time         = 500
  ,fading       = 0
  ,tile         = const.path.gfx.."white.jpg"
  ,next         = "cam5"
}

cam5 = pause {
   time         = 1000
  ,fading       = 0
  ,next         = "cam6"
}

cam6 = pause {
   time         = 500
  ,fading       = 0
  ,tile         = const.path.gfx.."white.jpg"
  ,next         = "cam7"
}

cam7 = pause {
   time         = 1000
  ,fading       = 0
  ,next         = "inter_fade"
}

inter_fade = pause {
   time         = 1
  ,tile         = tile "wall1"
  ,fading       = 60
  ,next         = "inter1"
}

inter0 = scene {
   tile         = { tile "floor", 664, 459 }
  ,obj          = { "box", "documents" }
  ,nav          = {
                     up = vw("Выйти", "finita"):cnd("inter._try", "Надо бы сначала допросить задержанную.")
                    ,left = vw("В центральную часть комнаты", "inter1")
                  }
}

box = staticitem {
   dsc          = choose_ {
                     ["default"] = "Здесь стоит металлический {секретер},"
                    ,["inter._paperstaken"] = "Здесь стоит металлический {секретер}."
                  }
  ,act          = "В секретере нет ничего полезного."
}

documents = item {
   nam          = "Документы"
  ,dsc          = "на котором лежат {папки} с документами."
  ,ico          = ico "materials"
  ,img          = ico "materials-use"
  ,tak          = chain_ { set_("inter._paperstaken"), "Петр взял папки с документами." }
  ,use          = chooseuse_ {
                     ["default"] = "В этом нет никакого смысла."
                    ,["inter_table"] = chain_ { drop_("documents"), set_("inter._papers"), "Петр положил на стол папки с документами." }
                    ,["box"] = chain_ { drop_("documents"), unset_("inter._paperstaken"), put_("documents", "inter0"), "Петр положил документы на секретер." }
                    ,["inter_table"] = chain_ { drop_("documents"), set_("inter._papers"), "Петр положил документы перед задержанной." }
                    ,["fohn"] = "Она никак не реагирует."
                  }
}

inter1 = scene {
   tile         = tile "wall1"
  ,bounds       = { 280, nil, 560 }
  ,dsc          = [[Хотя уже середина дня, у Петра такое чувство, будто бы он только что проснулся.^ Лавровский официально открыл дело
                    в воскресенье, в тот же день, когда они нашли упавшее Око, и сегодня получается уже третий расследования, а у них по-прежнему
                    ничего нет. Вчера Петр весь день обследовал старый город рядом с местом падения -- со Степановым и поисковой группой.
                    Дальше второго километра они не заезжали, официально считается, что уровень радиации там незначительный, но все равно
                    он чувствовал себя так, словно не спал уже несколько лет.^^]]
  ,obj          = { "astahov" }
  ,nav          = {
                     left = vw("В левую часть комнаты", "inter2")
                    ,right = vw("В правую часть комнаты", "inter0")
                    ,up = vw("В комнату для допросов", "inter3"):cnd("inter._talk", "Надо бы сначала спросить у Астахова, что ему уже удалось узнать.")
                  }
}

astahov = staticitem {
   dsc          = choose_ {
                     ["default"] = "У окна комнаты для допросов стоит {Астахов}. Вид у него тоже усталый."
                    ,["inter1._seen"] = "У окна комнаты для допросов стоит {Астахов}."
                  }
  ,act          = walk_("astahov_dlg")
}

astahov_dlg = dialog {
   tile         = tile "wall1"
  ,bounds       = { 280, nil, 660 }
  ,dlg          = dxml "astahov"
}

inter2 = scene {
   tile         = { tile "floor", 664, 459 }
  ,obj          = { "peter", "coffee_machine", "coffee_table", "cup" }
  ,nav          = {
                    right = vw("В центральную часть комнаты", "inter1")
                  }
}

peter = staticitem {
   dsc          = "{Петр} почти два месяца не был в секции для допросов, хотя здесь мало что-изменилось."
  ,act          = "Чувство, что он только что проснулся, так и не покидает Петра."
}

coffee_table = staticitem {
   dsc          = choose_ {
                     ["default"] = "На {столике},"
                    ,["inter._cuptaken"] = "На {столике}, где стоят чашки, можно заметить пятна от кофе."
                  }
  ,act          = "Металлический стол, застеленный клеенкой. Ничего интересного."
}

coffee_machine = staticitem {
   dsc          = "Впрочем, {эспрессо-машина} теперь совсем новая, старую наконец отправили на покой."
  ,act          = choose_ {
                     ["default"] = "Обычная кофе-машина, готовит эспрессо."
                    ,["inter._cupcoffee"] = 
                        choose_ {
                          ["default"] = walk_("brew")
                         ,["inter._coffee"] = "В чашке уже есть кофе."
                        }
                  }
}

brew = pause {
   time         = 6000
  ,enter        = set_("inter._coffee")
  ,next         = walkblack_("inter2", "Кофе готов.")
}

cup = item {
   nam          = choose_ {
                     ["default"] = "Пустая чашка"
                    ,["inter._coffee"] = "Чашка с кофе"
                  }
  ,ico          = ico "cup2"
  ,img          = ico "cup2-use"
  ,dsc          = choose_ {
                     ["default"] = "где стоят {чашки}, можно заметить пятна от кофе."
                    ,["inter._cupcoffee"] = "{Одна из чашек} уже установлена в кофе-машину."
                  }
  ,tak          = chain_ { set_("inter._cuptaken"), unset_("inter._cupcoffee"), "Петр взял чашку." }
  ,use          = chooseuse_ {
                     ["default"] = "В этом нет никакого смысла."
                    ,["coffee_machine"] = 
                        choose_ {
                           ["default"] = chain_ { set_("inter._cupcoffee"), drop_("cup"), put_("cup"), "Петр поставил чашку в эспрессо-машину." }
                          ,["inter._coffee"] = "В чашке уже есть кофе."
                        }
                    ,["coffee_table"] = 
                        choose_ {
                           ["default"] = chain_ { unset_("inter._cuptaken"), drop_("cup"), put_("cup"), "Петр поставил чашку на стол." }
                          ,["inter._coffee"] = chain_ { unset_("inter._coffee"), unset_("inter._cuptaken"), drop_("cup"), put_("cup"), "Петр и сам не понял, зачем заваривал кофе. Кофе ему совсем не хотелось." }
                        }
                    ,["inter_table"] = 
                        choose_ {
                           ["default"] = "Неплохо бы сначала налить сюда кофе."
                          ,["inter._coffee"] = chain_ { drop_("cup"), set_("inter._cup"), "Петр поставил чашку с кофе перед задержанной." }
                        }
                    ,["astahov"] = 
                        choose_ {
                           ["default"] = "Зачем ему пустая чашка?"
                          ,["inter._coffee"] = "Астахов смотрит на дымящий кофе, а затем медленно качает головой. Видно, сегодня он тоже выпил достаточно кофе."
                        }
                    ,["peter"] =
                        choose_ {
                           ["default"] = "Неплохо бы сначала налить сюда кофе."
                          ,["inter._drink and not inter._coffee"] = "Неплохо бы сначала налить сюда кофе. Впрочем, Петр не уверен, что ему стоит пить еще кофе."
                          ,["inter._drink and inter._coffee"] = "Это будет уже седьмая чашка за день. Как бы не было плохо."
                          ,["inter._coffee and not inter._drink"] = chain_ { drop_("cup"), put_("cup"), unset_("inter._coffee"), set_("inter._drink"), sound_("drink"), "Петр сделал несколько глотков из чашки. Кофе был горячим и обжигал губы. Это уже шестая чашка кофе, которую он пьет, однако лучше от этого не становится." }
                        }
                    ,["fohn"] = "Она никак не реагирует."
                    ,["fohnsit"] = "Она никак не реагирует."
                  }
}

inter3 = scene {
   tile         = { tile "wall2", 150, 20 }
  ,bounds       = { nil, 420 }
  ,dsc          = [[От пола исходит неприятный холод, который чуствуется даже через подошвы ботинок.]]
  ,obj          = { "fohnsit", "chair" }
  ,nav          = {
                    down = vw("Выйти", walkif_("inter._alldone", "finita", "inter1"))
                  }
}

fohnsit = staticitem {
   dsc          = "Из всей мебели в этой комнате -- только привинченный к полу металлический стол, за которым сидит {задержанная},"
  ,act          = "Она как будто вообще не замечает Петра."
  ,showonce     = true
}

chair = staticitem {
   dsc          = "и {стулья}."
  ,act          = chain_ { sound_("chair"), walkblack_("sit", "Петр сел напротив задержанной.") }
}

sit = scene {
   tile         = { tile "wall2", 150, 20 }
  ,bounds       = { nil, 420 }
  ,obj          = { "fohn", "inter_table" }
  ,nav          = {
                    up = vw("Встать", chain_{sound_("chair"),walkblack_("inter3", "Петр встал из-за стола.")})
                  }
}

inter_table = staticitem {
   dsc          = "Их разделяет широкий затертый {стол}."
  ,act          = "Он стоит здесь уже, наверное, лет десять."
}

fohn = staticitem {
   dsc          = [[{Девушка} слегка неестественно держит правую руку -- видимо, пуля повредила связки, и рука почти обездвижена. 
                    Вся одежда у нее крови. Страшно даже представить, что с ней произошло. Она сидит, отрешенно уставившись куда-то в сторону, 
                    точно находится совсем в другом месте.]]
  ,act          = walk_("fohn_dlg")
}

fohn_dlg = dialog {
   tile         = { tile "wall2", 150, 20 }
  ,bounds       = { nil, 420, 900 }
  ,dsc          = "Девушка как-то странно отводит взгляд от Петра."
  ,dlg          = dxml "fohn"
  ,talkend      = "back"
}

finita = pause {
   time         = 3000
  ,enter        = stop_music
  ,next         = "main"
}